﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Collections;
using System.Windows.Media;

using Civilisation_code.PJoueur;
using Civilisation_code.PCarte;
using Civilisation_code.PInterfaces_Fabrique_Unite;
using Civilisation_code.PPartie;
using Civilisation_code.PRessource;
using Civilisation_code.Implementation_Unite_EII;
using Civilisation_code.Implementation_Unite_INFO;

namespace Tests
{
    [TestClass]
    public class TestDeroulementPartie
    {
        [TestMethod]
        public void TestTourSuivant()
        {
            //A sa création, un village n'a pas annexe de cases et produit les ressources de sa propre case
            Monteur_Partie monteur = new Monteur_Partie_IMPL();

            Hashtable joueurs = new Hashtable();
            joueurs.Add("Flo", new Tuple<string, Color>("INFO", Colors.Blue));
            joueurs.Add("Nico", new Tuple<string, Color>("INFO", Colors.Red));

            monteur.genererPartie(joueurs, false);

            

            //Début de la partie : tirage aléatoire du premier à jouer
            monteur._partie.debut();

            Joueur j1 = monteur._partie._joueurs[0];
            Joueur j2 = monteur._partie._joueurs[1];

            //J1
            Assert.AreEqual(1, monteur._partie.Nb_tour);
            Assert.AreEqual(0, monteur._partie.NumJoueurActif);
            monteur._partie.joueurSuivant();
            //J2
            Assert.AreEqual(1, monteur._partie.Nb_tour);
            Assert.AreEqual(1, monteur._partie.NumJoueurActif);
            //Nouveau tour
            //J1
            monteur._partie.joueurSuivant();
            Assert.AreEqual(2, monteur._partie.Nb_tour);
            Assert.AreEqual(0, monteur._partie.NumJoueurActif);

        }

    }
}
